Stream Callbacks
constructor(onStart: suspend () -> Unit? = null, onFinal: suspend (completion: String) -> Unit? = null, onToken: suspend (token: String) -> Unit? = null, onText: suspend (text: String) -> Unit? = null, onFinish: suspend (finalState: JsonElement?) -> Unit? = null, onError: suspend (error: Throwable) -> Unit? = null, onAbort: suspend () -> Unit? = null)